trace("warning: unable to bind to property \'" + _propertyName + "\' on class \'" + getQualifiedClassName(parentObj) + "\'");
}
else
{
addParentEventListeners();
}
}
else
{
trace("warning: unable to bind to property \'" + _propertyName + "\' on class \'" + getQualifiedClassName(parentObj) + "\' (class is not an IEventDispatcher)");
}
}
else if(parentObj is IEventDispatcher)
{
addParentEventListeners();
}
}
wrapUpdate(updateProperty);
}
public function eventHandler(param1:Event) : void
{
var _loc2_:Object = null;
if(param1 is PropertyChangeEvent)
{
_loc2_ = PropertyChangeEvent(param1).property;
if(_loc2_ != _propertyName)
{
return;
}
}
wrapUpdate(updateProperty);
notifyListeners(events[param1.type]);
}
public function get propertyName() : String
{
return _propertyName;
}
private function updateProperty() : void
{
if(parentObj)
{
if(_propertyName == "this")
{
value = parentObj;
}
else if(_propertyGetter != null)
{
value = _propertyGetter.apply(parentObj,[_propertyName]);
}
else
{
value = parentObj[_propertyName];
}
}
else
{
value = null;
}
updateChildren();
}
private function eventNamesToString() : String
{
var _loc1_:String = null;
var _loc2_:String = null;
_loc1_ = " ";
for(_loc2_ in events)
{
_loc1_ += _loc2_ + " ";
}
return _loc1_;
}
override protected function shallowClone() : Watcher
{
var _loc1_:PropertyWatcher = null;
_loc1_ = new PropertyWatcher(_propertyName,events);